package com.sjc.designpattern.adapter;

/**
 * @Classname WithoutAdapterPatternDemo
 * @Description 不用设计模式的实现
 * @Date 2020/4/24 23:15
 * @Created by SangJiacun
 */
public class WithoutAdapterPatternDemo {
    public static void main(String[] args) {
        OldInterface oldObject = new OldInterfaceImpl();
        oldObject.oldExecute();

        NewInterface newObject = new NewInterfaceImpl();
        newObject.newExecute();

        // 如果不用设计模式，有什么问题？
        // 问题其实很明显，新的代码中，融合了新老两套接口，很麻烦的一个事情
        // 首先你这么干的话，会导致代码很恶心，面向的是规范和风格完全不同的两套接口，理解和维护的成本提高了
        // 其次，可能都不给你选择使用老版本接口的机会，
        // 公司规范直接强制性要求按照新版本接口来走，你的老版本接口的实现类，就没法用了
        // 难不成还要基于新版本的接口重新写一套？
    }

    //老版本接口
    public static interface OldInterface {
        void oldExecute();
    }

    public static class OldInterfaceImpl implements OldInterface {
        @Override
        public void oldExecute() {
            System.out.println("老版本接口实现的功能逻辑");
        }
    }

    public static interface NewInterface {
        void newExecute();
    }

    public static class NewInterfaceImpl implements NewInterface {
        @Override
        public void newExecute() {
            System.out.println("新版本接口实现的功能逻辑");
        }
    }

}
